/**
 * Copyright &copy; 2012-2014 <a href="https://github.com/thinkgem/jeesite">JeeSite</a> All rights reserved.
 */
package com.jims.master.modules.sync.entity;

import com.fasterxml.jackson.annotation.JsonBackReference;
import com.jims.master.common.persistence.DataEntity;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotNull;

/**
 * 诊断Entity
 * @author xueyx
 * @version 2017-11-20
 */
public class Diagnosis extends DataEntity<Diagnosis> {
	
	private static final long serialVersionUID = 1L;
	private Diagnosis parent;		// 父级ID
	private String parentIds;		// 父级ID集合
	private String type;		// 诊断类型
	private String diagnosisId;		// icd10编码
	private String icdName;		// icd10名称
	private String operation;		// 手术
	private String itemNo;		// 诊断序号
	private String effect;		// 效果
	private String description;		// 诊断描述
	private String basis;		// 诊断依据
    private String situationIn;		// 入院情况
    private String situationInStr;		// 入院情况
	private String inoroutFlag;		// 1.门诊2.住院
	private String visitId;		// 住院ID
	private String clinicId;		// 门诊ID
	private String diagnosisDoctor;		// 诊断医生
    private String pathologicDiagnosis;//病理诊断
    private String pathologyNo;//病理号
	private String state;		// 1.初步诊断2.目前诊断3.入院诊断4.补充5.确定6.修订7.出院诊断8.病理诊断9损伤和中毒的外部原因10门诊诊断
	
	public Diagnosis() {
		super();
	}

	public Diagnosis(String id){
		super(id);
	}

	@JsonBackReference
	@NotNull(message="父级ID不能为空")
	public Diagnosis getParent() {
		return parent;
	}

	public void setParent(Diagnosis parent) {
		this.parent = parent;
	}
	
	@Length(min=0, max=500, message="父级ID集合长度必须介于 0 和 500 之间")
	public String getParentIds() {
		return parentIds;
	}

	public void setParentIds(String parentIds) {
		this.parentIds = parentIds;
	}
	
	@Length(min=0, max=1, message="诊断类型长度必须介于 0 和 1 之间")
	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}
	
	@Length(min=0, max=500, message="icd10编码长度必须介于 0 和 500 之间")
	public String getDiagnosisId() {
		return diagnosisId;
	}

	public void setDiagnosisId(String diagnosisId) {
		this.diagnosisId = diagnosisId;
	}
	
	@Length(min=0, max=200, message="icd10名称长度必须介于 0 和 200 之间")
	public String getIcdName() {
		return icdName;
	}

	public void setIcdName(String icdName) {
		this.icdName = icdName;
	}
	
	@Length(min=0, max=1, message="手术长度必须介于 0 和 1 之间")
	public String getOperation() {
		return operation;
	}

	public void setOperation(String operation) {
		this.operation = operation;
	}
	
	@Length(min=0, max=11, message="诊断序号长度必须介于 0 和 11 之间")
	public String getItemNo() {
		return itemNo;
	}

	public void setItemNo(String itemNo) {
		this.itemNo = itemNo;
	}
	
	public String getEffect() {
		return effect;
	}

	public void setEffect(String effect) {
		this.effect = effect;
	}
	
	public String getDescription() {
		return description;
	}

	public void setDescription(String description) {
		this.description = description;
	}
	
	public String getBasis() {
		return basis;
	}

	public void setBasis(String basis) {
		this.basis = basis;
	}

    @Length(min=0, max=1, message="住院长度必须介于 0 和 1 之间")
	public String getInoroutFlag() {
		return inoroutFlag;
	}

	public void setInoroutFlag(String inoroutFlag) {
		this.inoroutFlag = inoroutFlag;
	}
	
	@Length(min=0, max=64, message="住院ID长度必须介于 0 和 64 之间")
	public String getVisitId() {
		return visitId;
	}

	public void setVisitId(String visitId) {
		this.visitId = visitId;
	}
	
	@Length(min=0, max=64, message="门诊ID长度必须介于 0 和 64 之间")
	public String getClinicId() {
		return clinicId;
	}

	public void setClinicId(String clinicId) {
		this.clinicId = clinicId;
	}
	
	@Length(min=0, max=64, message="诊断医生长度必须介于 0 和 64 之间")
	public String getDiagnosisDoctor() {
		return diagnosisDoctor;
	}

	public void setDiagnosisDoctor(String diagnosisDoctor) {
		this.diagnosisDoctor = diagnosisDoctor;
	}

    @Length(min=0, max=1, message="病理诊断9损伤和中毒的外部原因10门诊诊断长度必须介于 0 和 1 之间")
	public String getState() {
		return state;
	}

	public void setState(String state) {
		this.state = state;
	}

    public String getSituationIn() {
        return situationIn;
    }

    public void setSituationIn(String situationIn) {
        this.situationIn = situationIn;
    }

    public String getSituationInStr() {
        return situationInStr;
    }

    public void setSituationInStr(String situationInStr) {
        this.situationInStr = situationInStr;
    }

    public String getPathologicDiagnosis() {
        return pathologicDiagnosis;
    }

    public void setPathologicDiagnosis(String pathologicDiagnosis) {
        this.pathologicDiagnosis = pathologicDiagnosis;
    }

    public String getPathologyNo() {
        return pathologyNo;
    }

    public void setPathologyNo(String pathologyNo) {
        this.pathologyNo = pathologyNo;
    }
}